<?php

namespace plugin\admin\app\model;

use plugin\admin\app\model\Base;

/**
 * @property integer $id ID(主键)
 * @property integer $mall_id 
 * @property integer $mch_id 
 * @property string $onecard_name 一卡通名称
 * @property string $batch_id 年卡发行批次
 * @property string $batch_date 发行日期
 * @property string $keyword 关键字
 * @property string $introduction 一卡通简介
 * @property string $description 商品详情
 * @property string $pic_url 商品封面图
 * @property string $slider_pic_urls 商品轮播图地址
 数组，以逗号分隔
 最多上传10张
 * @property integer $category_id 商品分类编号
 * @property integer $status 0:未发行 1:已发行 2:已下架
 * @property string $content 绑卡须知
 * @property mixed $ys_content 隐私协议
 * @property integer $price 商品销售价格，单位使用：分
 * @property integer $market_price 市场价，单位使用：分
 * @property integer $cost_price 成本价，单位： 分
 * @property mixed $use_coupon 是否必须使用优惠券：0-否；1-是
 * @property integer $give_integral 赠送积分
 * @property integer $card_type 卡类型：1-年卡；2-季卡；3-月卡；10-转转卡
 * @property mixed $valid_unit 有效期单位：Y-年；M-月；D-天
 * @property integer $valid_num 有效期，和单位配合使用
 * @property integer $stock 库存
 * @property integer $sales_count 商品销量，统计字段，备用
 * @property string $create_time 创建时间
 * @property string $update_time 更新时间
 * @property string $creator 创建人
 * @property string $updater 更新人
 * @property mixed $deleted 是否删除
 * @property integer $tenant_id 租户编号
 * @property integer $validity_type 生效日期类型：1-固定日期区间；2-购买/兑换之后
 * @property string $valid_start_time 固定日期-生效开始时间
 * @property string $valid_end_time 固定日期-生效结束时间
 * @property integer $is_delete 
 * @property mixed $created_at
 */
class TejianOnecardInfo extends Base
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'tejian_onecard_info';

    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'id';
    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = false;

    //获取一卡通对应的景区，关联关系通过tejian_scenic_onecard 表控制
    public function scenic()
    {
//        return $this->hasMany('plugin\admin\app\model\TejianScenicOnecard', 'onecard_id', 'id');
        // 通过hasManyThrough关联到Scenic模型
        return $this->hasManyThrough(
            TejianScenic::class, // 最终要关联的模型
            'plugin\admin\app\model\TejianScenicOnecard', // 中间模型的完整命名空间
            'onecard_id', // 中间模型中指向当前模型的外键
            'id', // 最终模型的主键
            'id', // 当前模型的主键
            'scenic_id' // 中间模型中指向最终模型的外键
        );
    }

    //获取一卡通相关信息，包含景区
    public function getOnecard()
    {
        $map = [
            'status' => 1,
            'is_delete'=>0
        ];
        $onecard = $this::with(['scenic' => function ($query) {
            $query->select('tejian_scenic.id', 'tejian_scenic.image', 'tejian_scenic.title'); // 假设景区表中有id, image, title字段
        }])
            ->where($map)
            ->orderBy('id', 'desc')
            ->limit(10)
            ->get();
//        $scenic = $onecard->scenic()->get();
//        $onecard['scenic'] = $scenic;
        return $onecard;
    }

    
    
}
